package com.etalk.crm.service;

import com.alibaba.fastjson.JSONArray;
import com.etalk.crm.pojo.TextbookesCategory;
import com.etalk.crm.pojo.Textbooks;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * @author Terwer
 */
public interface TextbooksService {
    /**
     * 分页查询教材信息
     *
     * @param map 查询条件
     * @return List<Textbooks>
     */
    PageInfo selectTextbooks(Map<String, Object> map, Integer pageNum, Integer pageSize);

    /**
     * 根据三级分类查询教材
     *
     * @param thirdId
     * @return
     */
    PageInfo selectTextbooksByThirdId(Integer thirdId, Integer pageNum, Integer pageSize);

    /**
     * 根据父id查询教材类别，受套餐限制
     * @param map 查询条件
     * @return 子类别列表
     */
    List<TextbookesCategory> searchTextbooksCategroyBySearch(Map<?, ?> map);

    /**
     * 查询知识点关联的教材
     *
     * @param knowledgeId
     * @return
     */
    PageInfo getTextbooksListByKnowledgeId(Integer knowledgeId, Integer pageNum, Integer pageSize);

    /**
     * 获取教材配置文件，取教材实际页码
     *
     * @param strUrl
     * @return
     */
    List<Map> showTextbooksPageList(String strUrl);

    /**
     * 根据教材获取配置文件内容
     * @param textbooksId
     * @return
     */
    JSONArray getConfigByTextbooksId(Integer textbooksId);

    /**
     * 获取教材目录和页码信息
     * @param id 教材id
     * @return
     */
    Map<String,Object> searchTextbookAddressById(Integer id);

    /**
     * 根据页码取索引
     *
     * @param jsona
     * @param pageName
     * @return
     */
    int getTextbooksIdxByPage( JSONArray jsona, String pageName);

    /**
     * 查询未导入的知识点信息
     */
    List<Map> getNotImportedList(List<Map> dataList);

    /**
     * 根据父id查询教材类别，不受套餐限制
     * @param parentId 父id
     * @return 子类别列表
     */
    List<TextbookesCategory> searchTextbookCategoryByParentId(int parentId);

    /**
     * 根据教材分类id查询其所属教材列表，不分页
     * @param thirdId 第三级教材分类id
     * @return 教材列表
     */
    List<Textbooks> selectTextbooksListByThirdId(Integer thirdId);
}
